"""
元组和列表一样，都可以存储多个、不同类型的元素
最大的不同点：
    元组一旦定义完成，就不可以更改

元组的定义：定义元组使用()，且用逗号隔开各个数据，数据可以是不同的数据类型

定义元组字面量
(元素, 元素, 元素, ... ..., 元素)

定义元组变量
变量名称 = (元素, 元素, 元素, ... ..., 元素)

定义空元组
变量名称 = ()
变量名称 = tuple()
"""

# 定义元组
(1, "hello", True)
t1 = (1, "hello", True)
t2 = ()
t3 = tuple()
print(f"t1的类型是：{type(t1)}，内容是：{t1}")
print(f"t2的类型是：{type(t2)}，内容是：{t2}")
print(f"t3的类型是：{type(t3)}，内容是：{t3}")

# 定义单个元素的元组
t4 = ("hello",)
print(f"t4的类型是：{type(t4)}，内容是：{t4}")

# 元组的嵌套
t5 = ((1, 2, 3), (4, 5, 6))
print(f"t5的类型是：{type(t5)}，内容是：{t5}")

# 下标索引去取出内容
print(t5[1][2])

# 元组的操作：index查找方法
t6 = ("java", "python", "go")
index = t6.index("python")
print(f"在元组t6中查找python，的下标是：{index}")

# 元组的操作：count统计方法
t7 = ("java", "python", "go", "python")
count = t7.count("python")
print(f"在元组t7中统计python的数量是：{count}")

# 元组的操作：len函数统计元组元素数量
t8 = ("java", "python", "go", "python", "go")
count = len(t8)
print(f"t8元组中的元素数量是：{count}")

# 元组的遍历：while
index = 0
while index < len(t8):
    print(f"{index}:{t8[index]}")
    index += 1

# 元组的遍历：for
for element in t8:
    print(f"{element}")

"""
可以修改元组内的list的内容
"""

t9 = (1, 2, ["python", "go"])
print(f"t9的内容是{t9}")
t9[2][1] = "java"
print(f"t9的内容是{t9}")